Lambda 함수의 버전과 별칭의 사용법에 대해 알아보자
안녕하세요, 임채정입니다.
이번 블로그에서는 람다 함수의 버전과 별칭에 대해 알아보고 실제로 예시까지 정리해보겠습니다.
아젠다
- 함수의 버전 (versions)
- 함수의 별칭 (aliases)
1. 함수의 버전 (versions)
정의
- 버전을 사용해서 함수의 배포를 관리
- 함수의 프로덕션 버전 사용에 영향을 주지 않고, 베타 테스트를 위한 새로운 버전의 함수를 게시 가능
- 함수에 포함되는 정보
- 함수 코드 및 모든 관련 종속성
- Lambda 런타임
- 모든 함수 설정
- 고유한 Amazon 리소스 이름(ARN)
예시
이번에는 실제로 람다 함수의 버전을 생성해봅시다.
위에 있는 그림처럼 두 개의 버전을 만들어보겠습니다.
먼저 새로운 버전으로 작성하기 전에 람다 코드를 변경합니다.
import json def lambda_handler(event, context): return "lambda function version1"
그 후 새로운 버전으로 만들기 위해 작업
에서 새 버전 발행
을 클릭합니다.
그러면 새 버전을 게시한다는 안내문이 나오고 게시
를 눌러주면 새로운 버전이 생성됩니다.
이렇게 생성한 버전은 코드의 수정이 불가능하게 됩니다.
만약 코드의 수정을 하고 싶으면 다시 $LATEST
버전으로 돌아가서 수정해야 합니다.
코드만 수정한 후에 같은 방식으로 버전2의 함수도 만들면 위의 그림처럼 두 개의 버전이 생성할 수 있습니다.
import json def lambda_handler(event, context): return "lambda function version2"
생성한 버전의 목록은 함수의 [버전] 탭에 들어가면 확인할 수 있습니다.
2. 함수의 별칭 (aliases)
정의
- 특정 함수 버전을 가리키는 포인터
- 별칭은 Amazon 리소스 이름(ARN)을 사용해 특정 함수 버전에 액세스
- 별칭과 함수의 주요 차이점 중 하나는 다른 버전의 함수를 가리키도록 별칭을 변경할 수 있다는 것
- 또한 별칭 하나로 복수의 함수를 가리키도록 할 수 있음
혹은
예시
이번에는 위에서 해봤던 람다 버전에 대한 예시에 이어서 람다 버전에 별칭을 부여해보겠습니다.
먼저 아래 사진과 같이 별칭을 설정해보겠습니다.
람다 함수의 [별칭]탭에 들어갑니다.
아직 별칭을 생성하지 않았기 때문에 목록이 없습니다.
새로운 별칭을 생성해보겠습니다.
사진과 같이 dev
별칭을 생성하고 $LATEST
버전을 가리키도록 설정합니다.
그러면 아래 사진과 같이 dev
별칭이 생성됩니다.
이와 같은 방법으로 prd
와 stg
를 각각의 버전을 가리키도록 설정해주면 그림과 같이 각각의 버전을 가리키도록 별칭을 생성할 수 있습니다.
그러면 조금 변경해서 아래의 사진과 같이 별칭 prd
가 두 개의 함수를 가리키도록 변경하겠습니다.
별칭 prd
를 선택한 후에 편집을 해줍니다.
편집화면에서 가중치 기반 별칭
의 설정에서 V2
를 설정하고 가중치를 10으로 설정합니다.
그 후에 저장을 해주면 사진과 같이 설정한 가중치로 각각의 버전을 가리키도록 할 수 있습니다.
이렇게 변경되면 별칭 prd
에서 함수를 실행했을 때 90%의 가중치로 version1
의 함수가 실행되고 10%의 가중치로 version2
의 함수가 실행되게 됩니다.